/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/


/*************************************************************************
 *\author: starlove
 *************************************************************************/
#ifndef __CC_PYTHON_IMPORT_O_CACHES__
#define __CC_PYTHON_IMPORT_O_CACHES__

#include <cocos2d.h>
#include "python_object_nodeobjects.h"

NS_CCPY_BEGIN
	class CPyAnimationCache : public CPyCCObject
	{
	PYCLASS_DEF_INTERFACE(CPyAnimationCache)
	public:
		PYCLASS_METHOD_DEF(CPyAnimationCache, purgeSharedAnimationCache);
		PYCLASS_METHOD_DEF(CPyAnimationCache, addAnimation);
		PYCLASS_METHOD_DEF(CPyAnimationCache, removeAnimationByName);
		PYCLASS_METHOD_DEF(CPyAnimationCache, animationByName);
		PYCLASS_METHOD_DEF(CPyAnimationCache, addAnimationsWithFile);
	};

	class CPySpriteFrameCache : public CPyCCObject
	{
	PYCLASS_DEF_INTERFACE(CPySpriteFrameCache)
	public:
		PYCLASS_METHOD_DEF(CPySpriteFrameCache, purgeSharedSpriteFrameCache);
		PYCLASS_METHOD_KW_DEF(CPySpriteFrameCache, addSpriteFramesWithFile);
		PYCLASS_METHOD_DEF(CPySpriteFrameCache, addSpriteFrame);
		PYCLASS_METHOD_DEF(CPySpriteFrameCache, removeSpriteFrames);
		PYCLASS_METHOD_DEF(CPySpriteFrameCache, removeUnusedSpriteFrames);
		PYCLASS_METHOD_DEF(CPySpriteFrameCache, removeSpriteFrameByName);
		PYCLASS_METHOD_DEF(CPySpriteFrameCache, removeSpriteFramesFromFile);
		PYCLASS_METHOD_DEF(CPySpriteFrameCache, removeSpriteFramesFromTexture);
		PYCLASS_METHOD_DEF(CPySpriteFrameCache, spriteFrameByName);
	};

	class CPyTextureCache : public CPyCCObject
	{
	PYCLASS_DEF_INTERFACE(CPyTextureCache)
	public:
		PYCLASS_METHOD_DEF(CPyTextureCache, purgeSharedTextureCache);
		PYCLASS_METHOD_DEF(CPyTextureCache, addImage);
		PYCLASS_METHOD_DEF(CPyTextureCache, addImageAsync);
		PYCLASS_METHOD_DEF(CPyTextureCache, addUIImage);
		PYCLASS_METHOD_DEF(CPyTextureCache, textureForKey);
		PYCLASS_METHOD_DEF(CPyTextureCache, removeAllTextures);
		PYCLASS_METHOD_DEF(CPyTextureCache, removeUnusedTextures);
		PYCLASS_METHOD_DEF(CPyTextureCache, removeTexture);
		PYCLASS_METHOD_DEF(CPyTextureCache, removeTextureForKey);
		PYCLASS_METHOD_DEF(CPyTextureCache, dumpCachedTextureInfo);
		PYCLASS_METHOD_DEF(CPyTextureCache, addPVRImage);
		PYCLASS_METHOD_DEF(CPyTextureCache, reloadAllTextures);
	};
NS_CCPY_END

#endif